﻿//-----------------------------------------------------------------------
// <copyright file="IBookProcessingData.cs" company="SampleThreeTier">
//     Sample 3 tier application by Anurag.
// </copyright>
//-----------------------------------------------------------------------
namespace DataAccessLayerContracts
{
    using System;
    using System.Collections.Generic;
    using DataAccessLayerData;

    /// <summary>
    /// The Book processing interface
    /// </summary>
    public interface IBookProcessingData
    {
        /// <summary>
        /// Adds the book details.
        /// </summary>
        /// <param name="bookData">The book entity.</param>
        /// <returns>Whether the book was added successfully</returns>
        bool AddBookDetails(BookData bookData);

        /// <summary>
        /// Gets the book details.
        /// </summary>
        /// <returns>Get the details of the book</returns>
        List<BookData> GetBookDetails();

        /// <summary>
        /// Updates the book details.
        /// </summary>
        /// <param name="updatedBookDetails">The updated book details.</param>
        /// <returns>Whether the book was updated successfully</returns>
        bool UpdateBookDetails(BookData updatedBookDetails);

        /// <summary>
        /// Deletes the book details.
        /// </summary>
        /// <param name="bookId">The book identifier.</param>
        /// <returns>Whether the book was deleted successfully</returns>
        bool DeleteBookDetails(int bookId);

        /// <summary>
        /// Gets the particular book details.
        /// </summary>
        /// <param name="bookId">The book identifier.</param>
        /// <returns>The book details</returns>
        BookData GetParticularBookDetails(int bookId);
    }
}
